#!/bin/bash
# 端口监控与自动重启脚本（增强版）

PORT=8080
START_CMD="python3 /path/to/app.py"
LOG_FILE="/var/log/port_monitor.log"
CHECK_INTERVAL=10
code="app.py"

mkdir -p "$(dirname "$LOG_FILE")"

while true; do
    # 自动切割日志（超过1MB备份）
    [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE") -gt 1048576 ] && mv "$LOG_FILE" "$LOG_FILE.$(date +%F-%T)"
    
    if ss -tuln | grep -q ":$PORT " && pgrep -f "$code" >/dev/null; then
        echo "$(date '+%F %T') ✅ 服务正常 (端口:$PORT)" >> "$LOG_FILE"
    else
        echo "$(date '+%F %T') ⚠️ 检测到服务异常，尝试启动..." >> "$LOG_FILE"
        $START_CMD >> "$LOG_FILE" 2>&1 &
        echo "$(date '+%F %T') 🚀 启动命令已执行" >> "$LOG_FILE"
    fi

    sleep "$CHECK_INTERVAL"
done